<template>
  <!--todo:类别-->
  <div>
    <navigator-menu></navigator-menu>

    <el-card shadow="always" style="border-radius: 35px 15px; margin: 10vw;opacity: 0.95">
      <el-button type="success" @click="cateSearch">分类检索</el-button>
      <el-tree
        :data="category"
        node-key="key"
        show-checkbox
        @check-change="handleCheckChange"
      />
    </el-card>
  </div>
</template>


<script>
import NavigatorMenu from "../components/NavigatorMenu";
import router from "../router";

export default {
  name: "Category",
  components: {
    NavigatorMenu
  },
  data() {
    return {
      category: [
        {
          label: '天体物理学',
          key: 'astro-ph',
          children: [
            {
              label: '宇宙学与非星系天体物理学',
              key: 'astro-ph.CO'
            },
            {
              label: '地球与行星天体物理学',
              key: 'astro-ph.EP'
            },
            {
              label: '星系天体物理学',
              key: 'astro-ph.GA'
            },
            {
              label: '高能天体物理现象学',
              key: 'astro-ph.HE'
            },
            {
              label: '天体物理学的仪器和方法',
              key: 'astro-ph.IM'
            },
            {
              label: '太阳和恒星天体物理学',
              key: 'astro-ph.SR'
            },
          ],
        },
        {
          label: '凝聚态物理',
          key: 'cond-mat',
          children: [
            {
              label: '无序系统与神经网络',
              key: 'cond-mat.dis-nn'
            },
            {
              label: '中尺度和纳米级物理',
              key: 'cond-mat.mes-hall'
            },
            {
              label: '材料科学',
              key: 'cond-mat.mtrl-sci'
            },
            {
              label: '其他凝聚态物质',
              key: 'cond-mat.other'
            },
            {
              label: '量子气体',
              key: 'cond-mat.quant-gas'
            },
            {
              label: '软凝聚态物质',
              key: 'cond-mat.soft'
            },
            {
              label: '统计力学',
              key: 'cond-mat.stat-mech'
            },
            {
              label: '电子波函数',
              key: 'cond-mat.str-el'
            },
            {
              label: '超导电性',
              key: 'cond-mat.supr-con'
            },
          ],
        },
        {
          label: '计算机科学',
          key: 'cs',
          children: [
            {
              label: '人工智能',
              key: 'cs.AI'
            },
            {
              label: '硬件架构',
              key: 'cs.AR'
            },
            {
              label: '计算复杂性',
              key: 'cs.CC'
            },
            {
              label: '计算工程、金融和科学',
              key: 'cs.CE'
            },
            {
              label: '计算几何',
              key: 'cs.CG'
            },
            {
              label: '计算和语言',
              key: 'cs.CL'
            },
            {
              label: '加密与安全',
              key: 'cs.CR'
            },
            {
              label: '计算机视觉和模式识别',
              key: 'cs.CV'
            },
            {
              label: '计算机与社会',
              key: 'cs.CY'
            },
            {
              label: '数据库',
              key: 'cs.DB'
            },
            {
              label: '分布式、并行和集群计算',
              key: 'cs.DC'
            },
            {
              label: '数字图书馆',
              key: 'cs.DL'
            },
            {
              label: '离散数学',
              key: 'cs.DM'
            },
            {
              label: '数据结构和算法',
              key: 'cs.DS'
            },
            {
              label: '新兴技术',
              key: 'cs.ET'
            },
            {
              label: '形式语言与自动机理论',
              key: 'cs.FL'
            },
            {
              label: '一般文献',
              key: 'cs.GL'
            },
            {
              label: '制图学',
              key: 'cs.GR'
            },
            {
              label: '计算机科学与博弈论',
              key: 'cs.GT'
            },
            {
              label: '人机交互',
              key: 'cs.HC'
            },
            {
              label: '信息检索',
              key: 'cs.IR'
            },
            {
              label: '信息论',
              key: 'cs.IT'
            },
            {
              label: '机器学习',
              key: 'cs.LG'
            },
            {
              label: '计算机科学中的逻辑',
              key: 'cs.LO'
            },
            {
              label: '多智能体系统 ',
              key: 'cs.MA'
            },
            {
              label: '多媒体',
              key: 'cs.MM'
            },
            {
              label: '数学软件',
              key: 'cs.MS'
            },
            {
              label: '数值分析',
              key: 'cs.NA'
            },
            {
              label: '神经与进化计算',
              key: 'cs.NE'
            },
            {
              label: '网络与互联网架构',
              key: 'cs.NI'
            },
            {
              label: '其他计算机科学',
              key: 'cs.OH'
            },
            {
              label: '操作系统',
              key: 'cs.OS'
            },
            {
              label: '性能',
              key: 'cs.PF'
            },
            {
              label: '编程语言',
              key: 'cs.PL'
            },
            {
              label: '机器人学',
              key: 'cs.RO'
            },
            {
              label: '符号计算',
              key: 'cs.SC'
            },
            {
              label: '响应',
              key: 'cs.SD'
            },
            {
              label: '软件工程',
              key: 'cs.SE'
            },
            {
              label: '社会与信息网络',
              key: 'cs.SI'
            },
            {
              label: '系统控制',
              key: 'cs.SY'
            },
          ],
        },
        {
          label: '经济学',
          key: 'econ',
          children: [
            {
              label: '经济计量学',
              key: 'econ.EM'
            },
          ],
        },
        {
          label: '传播学',
          key: 'eess',
          children: [
            {
              label: '语音与音频处理',
              key: 'eess.AS'
            },
            {
              label: '图像与视频处理',
              key: 'eess.IV'
            },
            {
              label: '信号处理',
              key: 'eess.SP'
            },
          ],
        },
        {
          label: '量子力学',
          key: 'gr',
          children: [
            {
              label: '广义相对论和量子宇宙学',
              key: 'gr-qc'
            },
          ],
        },
        {
          label: '高能物理',
          key: 'hep',
          children: [
            {
              label: '高能物理-实验',
              key: 'hep-ex'
            },
            {
              label: '高能物理-晶格',
              key: 'hep-lat'
            },
            {
              label: '高能物理-现象学',
              key: 'hep-ph'
            },
            {
              label: '高能物理-理论',
              key: 'hep-th'
            },
          ],
        },
        {
          label: '数学',
          key: 'math',
          children: [
            {
              label: '交换代数',
              key: 'math.AC'
            },
            {
              label: '代数几何',
              key: 'math.AG'
            },
            {
              label: '项目态势评估分析',
              key: 'math.AP'
            },
            {
              label: '代数拓扑',
              key: 'math.AT'
            },
            {
              label: '经典分析与常微分方程',
              key: 'math.CA'
            },
            {
              label: '组合学',
              key: 'math.CO'
            },
            {
              label: '电子理论',
              key: 'math.CT'
            },
            {
              label: '复杂变量',
              key: 'math.CV'
            },
            {
              label: '微分几何',
              key: 'math.DG'
            },
            {
              label: '动态系统',
              key: 'math.DS'
            },
            {
              label: '泛函分析',
              key: 'math.FA'
            },
            {
              label: '普通数学',
              key: 'math.GM'
            },
            {
              label: '一般拓扑学',
              key: 'math.GN'
            },
            {
              label: '群论',
              key: 'math.GR'
            },
            {
              label: '几何拓扑学',
              key: 'math.GT'
            },
            {
              label: '历史和概述',
              key: 'math.HO'
            },
            {
              label: '信息论',
              key: 'math.IT'
            },
            {
              label: 'K理论与同源性',
              key: 'math.KT'
            },
            {
              label: 'K理论与同源性',
              key: 'math.KT'
            },
            {
              label: '逻辑学',
              key: 'math.LO'
            },
            {
              label: '几何度量学',
              key: 'math.MG'
            },
            {
              label: '数学物理',
              key: 'math.MP'
            },
            {
              label: '数值分析',
              key: 'math.NA'
            },
            {
              label: '数论',
              key: 'math.NT'
            },
            {
              label: '运算符代数',
              key: 'math.OA'
            },
            {
              label: '最优化及控制',
              key: 'math.OC'
            },
            {
              label: '概率',
              key: 'math.PR'
            },
            {
              label: '量子代数',
              key: 'math.QA'
            },
            {
              label: '环与代数',
              key: 'math.RA'
            },
            {
              label: '表示论',
              key: 'math.RT'
            },
            {
              label: '辛几何',
              key: 'math.SG'
            },
            {
              label: '光谱理论',
              key: 'math.SP'
            },
            {
              label: '统计理论',
              key: 'math.ST'
            },
            {
              label: '数学物理',
              key: 'math-ph'
            },
          ],
        },
        {
          label: '非线性科学',
          key: 'nlin',
          children: [
            {
              label: '适应和自组织系统',
              key: 'nlin.AO'
            },
            {
              label: '混沌动力学',
              key: 'nlin.CD'
            },
            {
              label: '细胞自动机和晶格气体',
              key: 'nlin.CG'
            },
            {
              label: '模式形成与孤子',
              key: 'nlin.PS'
            },
            {
              label: '完全可解和可积的系统',
              key: 'nlin.SI'
            },
          ],
        },
        {
          label: '核实验',
          key: 'nucl-ex',
        },
        {
          label: '核理论',
          key: 'nucl-th',
        },
        {
          label: '物理学',
          key: 'physics',
          children: [
            {
              label: '加速器物理',
              key: 'physics.acc-ph'
            },
            {
              label: '大气和海洋物理学',
              key: 'physics.ao-ph'
            },
            {
              label: '应用物理学',
              key: 'physics.app-ph'
            },
            {
              label: '原子簇和分子簇',
              key: 'physics.atm-clus'
            },
            {
              label: '原子物理学',
              key: 'physics.atom-ph'
            },
            {
              label: '生物物理学',
              key: 'physics.bio-ph'
            },
            {
              label: '化学物理学',
              key: 'physics.chem-ph'
            },
            {
              label: '经典物理学',
              key: 'physics.class-ph'
            },
            {
              label: '计算物理学',
              key: 'physics.comp-ph'
            },
            {
              label: '数据分析、统计与概率',
              key: 'physics.data-an'
            },
            {
              label: '物理教育',
              key: 'physics.ed-ph'
            },
            {
              label: '流体力学',
              key: 'physics.flu-dyn'
            },
            {
              label: '普通物理',
              key: 'physics.gen-ph'
            },
            {
              label: '地球物理学',
              key: 'physics.geo-ph'
            },
            {
              label: '物理学史和哲学',
              key: 'physics.hist-ph'
            },
            {
              label: '仪器仪表和探测器',
              key: 'physics.ins-det'
            },
            {
              label: '医学物理',
              key: 'physics.med-ph'
            },
            {
              label: '光学',
              key: 'physics.optics'
            },
            {
              label: '等离子物理',
              key: 'physics.plasm-ph'
            },
            {
              label: '热门物理',
              key: 'physics.pop-ph'
            },
            {
              label: '物理学与社会',
              key: 'physics.soc-ph'
            },
            {
              label: '空间物理',
              key: 'physics.space-ph'
            },
          ],
        },
        {
          label: '定量生物学',
          key: 'q-bio',
          children: [
            {
              label: '生物分子',
              key: 'q-bio.BM'
            },
            {
              label: '细胞行为',
              key: 'q-bio.CB'
            },
            {
              label: '基因组学',
              key: 'q-bio.GN'
            },
            {
              label: '分子网络',
              key: 'q-bio.MN'
            },
            {
              label: '神经元和认知',
              key: 'q-bio.NC'
            },
            {
              label: '其他定量生物学',
              key: 'q-bio.OT'
            },
            {
              label: '种群与进化',
              key: 'q-bio.PE'
            },
            {
              label: '定量方法',
              key: 'q-bio.QM'
            },
            {
              label: '亚细胞过程',
              key: 'q-bio.SC'
            },
            {
              label: '组织和器官',
              key: 'q-bio.TO'
            },
          ],
        },
        {
          label: '定量金融学',
          key: 'q-fin',
          children: [
            {
              label: '计算金融学',
              key: 'q-fin.CP'
            },
            {
              label: '经济学',
              key: 'q-fin.EC'
            },
            {
              label: '一般金融',
              key: 'q-fin.GN'
            },
            {
              label: '数理金融学',
              key: 'q-fin.MF'
            },
            {
              label: '投资组合管理',
              key: 'q-fin.PM'
            },
            {
              label: '证券定价',
              key: 'q-fin.PR'
            },
            {
              label: '风险管理',
              key: 'q-fin.RM'
            },
            {
              label: '统计金融',
              key: 'q-fin.ST'
            },
            {
              label: '交易和市场微观结构',
              key: 'q-fin.TR'
            },
          ],
        },
        {
          label: '量子物理',
          key: 'quant-ph',
        },
        {
          label: '统计学',
          key: 'stat',
          children: [
            {
              label: '应用软件',
              key: 'stat.AP'
            },
            {
              label: '计算',
              key: 'stat.CO'
            },
            {
              label: '方法论',
              key: 'stat.ME'
            },
            {
              label: '机器学习',
              key: 'stat.ML'
            },
            {
              label: '计算',
              key: 'stat.CO'
            },
            {
              label: '方法论',
              key: 'stat.ME'
            },
            {
              label: '机器学习',
              key: 'stat.ML'
            },
            {
              label: '其他统计数据',
              key: 'stat.OT'
            },
            {
              label: '统计理论',
              key: 'stat.TH'
            },
          ],
        },
        {
          label: '医学',
          key: 'medical'
        },
        {
          label: '信息学',
          key: 'info'
        },
        {
          label: '经济学',
          key: 'eco'
        },
      ],
      categories: [],
      defaultProps: {
        children: 'children',
        label: 'label',
      },
    }
  },
  methods: {
    handleCheckChange(data, checked, indeterminate) {
      console.log(data, checked, indeterminate)
      if(checked){
        this.categories.push(data.key)
      }
      else{
        const index = this.categories.indexOf(data.key)
        if (index !== -1) {
          this.categories.splice(index, 1)
        }
      }
    },
    handleNodeClick(data) {
      console.log(data)
    },
    cateSearch(){
      console.log('categories')
      console.log(this.categories)
      var conditions=[]
      for(let i=0; i<this.categories.length; i++){
        conditions.push({
          key: 'field.keyword',
          option: 1,
          page: 1,
          size: 20,
          value: this.categories[i],
        })
      }
      console.log('conditions')
      console.log(conditions)
      const Parameters = {
        conditions: conditions,
        paperFilter:{
          canGet: false,
          highSite: false,
          hot: false,
        },
        sort:1,
        year:{
          l:1950,
          r:2021,
        }
      }
      router.push(
      {
        path: '/searchResult',
        name: 'SearchResult',
        params: {
          fromCategory: true,
          Parameters: JSON.stringify(Parameters)
        }
      })
      console.log('Parameters')
      console.log(Parameters)
    }
  },
}
</script>

<style scoped>

</style>
